

#ifndef UC_GEFILEIO_H
#define UC_GEFILEIO_H

#include "zgegbl.h"
#include "zgedll.h"
#include "zdbfiler.h"
#include "zgept2dar.h"
#include "zgevc2dar.h"
#include "zgept3dar.h"
#include "zgevc3dar.h"
#include "zgedblar.h"
#include "zgeintarr.h"
#pragma pack (push, 8)
     
class UcGeEntity2d;
class UcGeEntity3d;
class UcGePoint2d;
class UcGeVector2d;
class UcGeMatrix2d;
class UcGeScale2d;
class UcGePoint3d;
class UcGeVector3d;
class UcGeMatrix3d;
class UcGeScale3d;
class UcGeTol;
class UcGeInterval;
class UcGeKnotVector;
class UcGeCurveBoundary;
class UcGePosition2d;
class UcGePointOnCurve2d;
class UcGeLine2d;
class UcGeLineSeg2d;
class UcGeRay2d;
class UcGeCircArc2d;
class UcGeEllipArc2d;
class UcGeExternalCurve2d;
class UcGeCubicSplineCurve2d;
class UcGeCompositeCurve2d;
class UcGeOffsetCurve2d;
class UcGeNurbCurve2d;
class UcGePolyline2d;
class UcGePosition3d;
class UcGePointOnCurve3d;
class UcGePointOnSurface;
class UcGeLine3d;
class UcGeRay3d;
class UcGeLineSeg3d;
class UcGePlane;
class UcGeBoundedPlane;
class UcGeBoundBlock2d;
class UcGeBoundBlock3d;
class UcGeCircArc3d;
class UcGeEllipArc3d;
class UcGeCubicSplineCurve3d;
class UcGeCompositeCurve3d;
class UcGeOffsetCurve3d;
class UcGeNurbCurve3d;
class UcGePolyline3d;
class UcGeAugPolyline3d;
class UcGeExternalCurve3d;
class UcGeSurface;
class UcGeCone;
class UcGeCylinder;
class UcGeTorus;
class UcGeExternalSurface;
class UcGeOffsetSurface;
class UcGeNurbSurface;
class UcGeExternalBoundedSurface;
class UcGeSphere;
class UcGeCurveCurveInt2d;
class UcGeCurveCurveInt3d;
class UcGeEllipCone;
     
class UcGeFiler;
class UcGeLibVersion;

class 
GE_DLLEXPIMPORT
UcGeFileIO
{
public:

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePoint2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeVector2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeMatrix2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeScale2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePoint2dArray&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeVector2dArray&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePoint3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeVector3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeMatrix3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeScale3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePoint3dArray&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeVector3dArray&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeTol&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeInterval&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeKnotVector&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeDoubleArray&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static
 Ucad::ErrorStatus outFields(UcGeFiler* filer, const UcGeIntArray& ent,
                                const UcGeLibVersion& version);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCurveBoundary&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePosition2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePointOnCurve2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeLine2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeLineSeg2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeRay2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCircArc2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeEllipArc2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeExternalCurve2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCubicSplineCurve2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCompositeCurve2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeOffsetCurve2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeNurbCurve2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePolyline2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePosition3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePointOnCurve3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePointOnSurface&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeLine3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeRay3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeLineSeg3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePlane&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeBoundedPlane&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCircArc3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeEllipArc3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCubicSplineCurve3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCompositeCurve3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeOffsetCurve3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeNurbCurve3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGePolyline3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeAugPolyline3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeExternalCurve3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCone&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCylinder&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeTorus&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeExternalSurface&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeOffsetSurface&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeNurbSurface&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeExternalBoundedSurface&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeSphere&,
                             const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeBoundBlock2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeBoundBlock3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCurveCurveInt2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeCurveCurveInt3d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeLibVersion&);

 static 
 Ucad::ErrorStatus outFields(UcGeFiler*, const UcGeEllipCone&,
                             const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePoint2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeVector2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeMatrix2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeScale2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePoint2dArray&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeVector2dArray&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePoint3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeVector3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeMatrix3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeScale3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePoint3dArray&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeVector3dArray&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeTol&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeInterval&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeKnotVector&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeDoubleArray&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static
 Ucad::ErrorStatus inFields(UcGeFiler* filer, UcGeIntArray& ent,
                                const UcGeLibVersion& version);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCurveBoundary&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePosition2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePointOnCurve2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeLine2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeLineSeg2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeRay2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCircArc2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeEllipArc2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeExternalCurve2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCubicSplineCurve2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCompositeCurve2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeOffsetCurve2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeNurbCurve2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePolyline2d&,
                             const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePosition3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePointOnCurve3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePointOnSurface&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeLine3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeRay3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeLineSeg3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePlane&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeBoundedPlane&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCircArc3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeEllipArc3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCubicSplineCurve3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCompositeCurve3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeOffsetCurve3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeNurbCurve3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGePolyline3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeAugPolyline3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeExternalCurve3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCone&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCylinder&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeTorus&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeExternalSurface&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeOffsetSurface&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeNurbSurface&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeExternalBoundedSurface&,
                            const UcGeLibVersion& = UcGe::gLibVersion);
 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeSphere&,
                            const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeBoundBlock2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeBoundBlock3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCurveCurveInt2d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeCurveCurveInt3d&,
                            const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeEllipCone&,
                            const UcGeLibVersion& = UcGe::gLibVersion);

 static 
 Ucad::ErrorStatus inFields(UcGeFiler*, UcGeLibVersion&);
     
private:
    static
    Ucad::ErrorStatus writeBoolean(UcGeFiler*, ZSoft::Boolean,
                                const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readBoolean(UcGeFiler*, ZSoft::Boolean*,
                               const UcGeLibVersion&);
    Ucad::ErrorStatus writeBool(UcGeFiler*, bool,
                                const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readBool(UcGeFiler*, bool*,
                               const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writeLong(UcGeFiler*, ZSoft::Int32,
                             const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readLong(UcGeFiler*, ZSoft::Int32*,
                            const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writeDouble(UcGeFiler*, double,
                             const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readDouble(UcGeFiler*, double*,
                              const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writePoint2d(UcGeFiler*, const UcGePoint2d&,
                                const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readPoint2d(UcGeFiler*, UcGePoint2d*,
                               const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writeVector2d(UcGeFiler*, const UcGeVector2d&,
                                 const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readVector2d(UcGeFiler*, UcGeVector2d*,
                                const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writePoint3d(UcGeFiler*, const UcGePoint3d&,
                                const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readPoint3d(UcGeFiler*, UcGePoint3d*,
                               const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writeVector3d(UcGeFiler*, const UcGeVector3d&,
                                 const UcGeLibVersion&);
    static
    Ucad::ErrorStatus readVector3d(UcGeFiler*, UcGeVector3d*,
                                const UcGeLibVersion&);
    static
    Ucad::ErrorStatus writeUcGeSurface(UcGeFiler*, const UcGeSurface&,
                                    const UcGeLibVersion& version);
    static
    Ucad::ErrorStatus readUcGeSurface(UcGeFiler*, UcGeSurface&,
                                   const UcGeLibVersion& version);
    static
    Ucad::ErrorStatus writeUcGeEntity2d(UcGeFiler* filer,
	            const UcGeEntity2d& ent, const UcGeLibVersion& version);
	static
    Ucad::ErrorStatus readUcGeEntity2d(UcGeFiler* filer, UcGeEntity2d*& ent,
	            UcGe::EntityId id, const UcGeLibVersion& version);
    static
    Ucad::ErrorStatus writeUcGeEntity3d(UcGeFiler* filer,
	            const UcGeEntity3d& ent, const UcGeLibVersion& version);
    static
    Ucad::ErrorStatus readUcGeEntity3d(UcGeFiler* filer, UcGeEntity3d*& ent,
	            UcGe::EntityId id, const UcGeLibVersion& version);

    static
    Ucad::ErrorStatus writeBytes(UcGeFiler* filer, const void* buf,
                    ZSoft::UInt32 len, const UcGeLibVersion& version);
    static
    Ucad::ErrorStatus readBytes(UcGeFiler* filer, void* buf,
                    ZSoft::UInt32 len, const UcGeLibVersion& version);

	friend class UcGeFileIOX;

};
     
#pragma pack (pop)
#endif
